Direct Memory Access (DMA) is a method for transferring data, utilized in computer bus architectures, that allows access and transfer of data independently of a central processing unit (CPU). DMA operations occur between storage locations on a computer system (e.g., random-access memory (RAM), and other storage locations) to internal or external components of the computing system (e.g., I/O devices, sound cards, graphics cards, Peripheral Component Interconnect Express (PCIe) devices, etc.). In an example, a sound card may need to access data stored on RAM of a computer system, but since the sound card includes internal processing capabilities, the sound card can utilize DMA to bypass the CPU and access the data stored on the RAM.
In computer systems that utilize Peripheral Component Interconnect (PCI) architecture, DMA operations can occur without a central DMA controller. Instead, PCI components (e.g., I/O devices, sound cards, graphics cards, PCIe devices, etc.) can request control of a computer bus (e.g., a PCI bus controller, or a PCI Host Bridge (PHB)) and request to read and write from memory of the computer system. In some examples, when PCI components request to control a computer from a PCI bus controller, the PCI bus controller arbitrates which PCI components are granted ownership of the bus, since only one PCI component can have ownership over the bus at one time.